package com.rightsidetech.activity.mapper;

import com.rightsidetech.activity.dto.request.store.MtActivityActStoreIdReq;
import com.rightsidetech.activity.dto.response.store.MtAwardImgResp;
import com.rightsidetech.activity.dto.response.store.MtavtivityRankResp;
import com.rightsidetech.activity.dto.response.store.app.CompareActResp;
import com.rightsidetech.activity.entity.MtUserJoinActivityProcess;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface MtUserJoinActivityProcessMapper {
    int deleteByPrimaryKey(Long id);

    int insert(MtUserJoinActivityProcess record);

    int insertSelective(MtUserJoinActivityProcess record);

    MtUserJoinActivityProcess selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(MtUserJoinActivityProcess record);

    int updateByPrimaryKey(MtUserJoinActivityProcess record);

    int updateBizValue(@Param("bizValue") Long bizValue,@Param("actId") Long actId, @Param("storeId") Long storeId);

    List<Long> selectBizId(MtActivityActStoreIdReq req);

    List<MtAwardImgResp> selectImgBizId(@Param("actId") Long actId, @Param("storeId") Long storeId);

    int selectCountByActAndCode(@Param("actId") Long id,@Param("storeId") Long storeId);

    MtUserJoinActivityProcess selectActAndCode(@Param("actId") Long actId,@Param("status") Byte status,@Param("storeId") Long storeId);

    Long selectBizValue(@Param("actId") Long actId, @Param("storeId") Long storeId);

    List<String> selectPicByUserIdAndActId(@Param("storeId") Long storeId ,@Param("actId") Long actId);

    List<CompareActResp> selectCompareAct(@Param("actId") Long actId,@Param("areaId") Long areaId);

    List<MtUserJoinActivityProcess> selectBaseListByActId(@Param("actId") Long actId);

    List<CompareActResp> selectCompareActJiZan(@Param("actId") Long actId,@Param("areaId") Long areaId);

    List<MtavtivityRankResp> findRankingByRule(@Param("actId")Long actId, @Param("num1") Integer num1, @Param("num2") Integer num2,@Param("areaId") Long areaId);

    MtUserJoinActivityProcess selectByActIdAndStoreId(@Param("actId") Long actId, @Param("storeId") Long storeId);
}